package br.com.vilababy.sigvb.conversores;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import org.joda.time.DateTime;

import br.com.vilababy.sigvb.SIGVBUtil;
import br.com.vilababy.sigvb.constantes.SIGVBEnum;
  
@FacesConverter("dataConverter")  
public class DataConverter implements Converter {  
  
    /**
     * @author Diego Patrick da Silva Santos 
     */
	
    @Override  
    public Object getAsObject(FacesContext contexto, UIComponent componente, String valor) {
    	
    	DateTime data = new DateTime();
          
        try {  
        	String dataSplit[] = valor.split("/");
        	Integer dia = Integer.parseInt(dataSplit[0]);
        	Integer mes = Integer.parseInt(dataSplit[1]);
        	Integer ano = Integer.parseInt(dataSplit[2]);
            data = new DateTime(ano, mes, dia, 0, 0, 0, 0);  
              
        } catch (Exception e) {  
        	SIGVBUtil.adicionarMensagemErro(SIGVBUtil.getValorMensagem(SIGVBEnum.FALHA_CADASTRO.getValor()), SIGVBUtil.getValorMensagem(SIGVBEnum.DATA_NASC_INFORME.getValor()));
            SIGVBUtil.adicionarMensagemErro(SIGVBUtil.getValorMensagem(SIGVBEnum.FALHA_CONVERSAO.getValor()), SIGVBUtil.getValorMensagem(SIGVBEnum.ERRO_CONVERSAO_DATA.getValor()));    
        }
        
		return new Date(data.getMillis());  
    }  
  
    @Override  
    public String getAsString(FacesContext contexto, UIComponent componente, Object objeto) {  
        try {  
        	
        	SimpleDateFormat sdf = new SimpleDateFormat(SIGVBEnum.DATE_PATTERN.getValor());
            Date data = (Date) objeto;
                          
            return sdf.format(data);  
        } catch (Exception e) {  
            return "";  
        }  
    }  
}  